package de.tg.handball.data;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Spiel implements Serializable, Comparable<Spiel> {

	private static final long serialVersionUID = 1L;
	private Date datum;
	private String heim;
	private String gast;
	private String liga;
	private Pair<Integer, Integer> ergebniss;
	private String spielBericht;
	private Halle halle = null;

	public Halle getHalle() {
		return halle;
	}

	public String getLiga() {
		return liga;
	}

	public void setLiga(String liga) {
		this.liga = liga;
	}

	public void setHalle(Halle halle) {
		this.halle = halle;
	}

	public Spiel(Date datum, String liga, String heim, String gast) {
		super();
		this.liga = liga;
		this.datum = datum;
		this.heim = heim;
		this.gast = gast;
		ergebniss = new Pair<Integer, Integer>(0, 0);
	}

	public String getSpielBericht() {
		return spielBericht;
	}

	public void setSpielBericht(String spielBericht) {
		this.spielBericht = spielBericht;
	}

	public Date getDatum() {
		return datum;
	}

	public void setDatum(Date datum) {
		this.datum = datum;
	}

	public String getHeim() {
		return heim;
	}

	public void setHeim(String heim) {
		this.heim = heim;
	}

	public String getGast() {
		return gast;
	}

	public void setGast(String gast) {
		this.gast = gast;
	}

	public Pair<Integer, Integer> getErgebniss() {
		return ergebniss;
	}

	public void setErgebniss(Pair<Integer, Integer> ergebniss) {
		this.ergebniss = ergebniss;
	}

	public int compareTo(Spiel another) {

		int ret = this.datum.compareTo(another.datum);

		if (ret == 0)
			ret = this.heim.compareTo(another.heim);
		if (ret == 0)
			ret = this.gast.compareTo(another.gast);

		return ret;
	}

	@Override
	public boolean equals(Object o) {
		if (o == null)
			return false;

		if (!(o instanceof Spiel))
			return false;

		if (this.compareTo((Spiel) o) == 0)
			return true;
		else
			return false;
	}

	@Override
	public String toString() {
		SimpleDateFormat form = new SimpleDateFormat("dd.MM.yyyy hh:mm");
		return form.format(datum) + "\t" + heim + "\t" + gast + "\t"
				+ ergebniss.first + ":" + ergebniss.second + "\t"+ halle;
	}
	
	public String getKalenderTitle(){
		return "Spiel " + this.heim + " gegen " + this.gast;
	}

}
